Dramatic improvements in processor performance and network performance have occurred in recent years. Improvements in network performance have been particularly dramatic, and communications processing with processors, and communications processing restricting copying of data have become necessary to extract maximum network hardware performance. However, the question of which method obtains the most efficiency is affected by the processing capacity of the processor, the transmission capacity of the system bus, the transmission capacity of the memory bandwidth, and the transmission capacity of the I/O bus and the like, and therefore these [factors] must be considered in total.
With conventional network communications software, the optimum communications processing method differed with the combination of network characteristics and system software. Thus, software was provided in which specifications for hardware and communications procedures are optimized for a specific network, and changes in the appropriate communications software and hardware processing method in response to differences in software processing performance and hardware performance were not considered.
Therefore, conventionally, in order to obtain maximum communications performance in a computer system employing a particular network, only a specific method optimized to the system (system hardware, network hardware, and operating system) is installed, or a plurality of methods are installed requiring a specific method, or optimizing of parameters, for each computer system. Thus, a communications method cannot be appropriately selected automatically in response to the computer environment, and therefore a constantly optimized communications method cannot be employed, and highly efficient communications cannot be conducted.
An object of the present invention is to resolve such problems, and to provide automatic selection of a communications method in response to a variety of computer environments, and to obtain a system of data communication, a method of data communication, and a program for data communication able to increase the speed of communications and the speed of applications.